package com.atguigu.srb.core.controller.admin;


import com.atguigu.srb.base.response.R;
import com.atguigu.srb.core.pojo.entity.UserInfo;
import com.atguigu.srb.core.pojo.entity.vo.UserInfoSearchVO;
import com.atguigu.srb.core.service.UserInfoService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * <p>
 * 用户基本信息 前端控制器
 * </p>
 *
 * @author Atguigu
 * @since 2023-05-26
 */
@RestController
//@CrossOrigin
@RequestMapping("/admin/core/userInfo")
public class AdminUserInfoController {
    @Resource
    UserInfoService userInfoService;
    @ApiOperation("锁定/解锁会员: status-0锁定 1解锁")
    @PutMapping("lock/{id}/{status}")
    public R lock(@PathVariable("id") String id,
                  @PathVariable("status") Integer status){
        //更新的是我们自己传入的条件拼接的sql
        //如果传入的是对象 会触发自动填充
        userInfoService.update(Wrappers.lambdaUpdate(UserInfo.class)
                .eq(UserInfo::getId , id)
                .set(UserInfo::getStatus ,status));
        return R.ok().msg(status==0?"锁定成功":"解锁成功");
    }
    /**
     * 1、接收前端提交的条件
     *      封装vo类接收前端提交的参数
     *          模糊查询的手机号
     *          用户类型：1：出借人 2：借款人
     *          用户状态：0：锁定 1：正常
     * 2、接收分页参数
     * @return
     */
    @ApiOperation("带条件查询会员分页列表")
    @GetMapping("list/{pageNum}/{pageSize}")
    public R page(@PathVariable("pageNum")Integer pageNum,
                  @PathVariable("pageSize")Integer pageSize,
//                  @RequestBody
                  //pojo入参 不能添加注解：将请求参数的属性值设置给接收的对象的属性
                   UserInfoSearchVO userInfoSearchVO){
        Page<UserInfo> page = userInfoService
                .searchUserInfos(pageNum , pageSize , userInfoSearchVO);
        return R.ok().data("page",page);
    }












}

